// import com.alibaba.druid.sql.ast.SQLExpr;
// import com.alibaba.druid.sql.ast.SQLName;
// import com.alibaba.druid.sql.ast.statement.SQLCreateStatement;
// import com.alibaba.druid.sql.dialect.mysql.visitor.MySqlASTVisitor;
#pragma once
#include "MySqlStatementImpl.h"
#include "../../../../ast/statement/SQLCreateStatement.h"

class MySqlCreateTableSpaceStatement : virtual public MySqlStatementImpl, virtual public SQLCreateStatement
{
public:
  SQLName_ptr name;
  SQLExpr_ptr addDataFile;
  SQLExpr_ptr initialSize;
  SQLExpr_ptr extentSize;
  SQLExpr_ptr autoExtentSize;
  SQLExpr_ptr fileBlockSize;
  SQLExpr_ptr logFileGroup;
  SQLExpr_ptr maxSize;
  SQLExpr_ptr nodeGroup;
  BOOL_ptr wait;
  SQLExpr_ptr comment;
  SQLExpr_ptr engine;

  SHAREDOBJECT(MySqlCreateTableSpaceStatement);
  void accept0(MySqlASTVisitor_ptr visitor);

  SQLName_ptr getName();

  void setName(SQLName_ptr x);

  SQLExpr_ptr getAddDataFile();

  void setAddDataFile(SQLExpr_ptr x);

  SQLExpr_ptr getInitialSize();

  void setInitialSize(SQLExpr_ptr x);

  SQLExpr_ptr getFileBlockSize();

  void setFileBlockSize(SQLExpr_ptr x);

  BOOL_ptr isWait();

  void setWait(BOOL_ptr wait);

  SQLExpr_ptr getEngine();

  void setEngine(SQLExpr_ptr x);

  SQLExpr_ptr getLogFileGroup();

  void setLogFileGroup(SQLExpr_ptr x);

  SQLExpr_ptr getExtentSize();

  void setExtentSize(SQLExpr_ptr x);

  SQLExpr_ptr getAutoExtentSize();

  void setAutoExtentSize(SQLExpr_ptr x);

  SQLExpr_ptr getMaxSize();

  void setMaxSize(SQLExpr_ptr x);

  SQLExpr_ptr getNodeGroup();

  void setNodeGroup(SQLExpr_ptr x);

  SQLExpr_ptr getComment();

  void setComment(SQLExpr_ptr x);
};
